﻿using System.Collections.Generic;
using System.Linq;
using MJD.Comunes.DtoEntidades;
using MJD.Comunes.Entidades;

namespace MJD.Logica.Traductores
{
    /// <summary>
    /// Clase que traduce la entidad Recaudo en un DtoRecaudo
    /// </summary>
    class TraductorRecaudo
    {
        /// <summary> Metodo que traduce los datos de la entidad Recaudo en DtoRecaudo para ser serializado para enviarse por el servicio </summary>
        /// <param name="entidad">datos de la entidad a ser traducido</param>
        /// <returns>DtoRecaudo</returns>
        public static DtoRecaudo TraducirEntidad(Recaudo entidad)
        {
            DtoRecaudo dto = new DtoRecaudo();
            dto.Id = entidad.Id;
            dto.Nombre = entidad.Nombre;

            return dto;
        }


        /// <summary> Metodo que traduce los datos del DtoRecaudo en Recaudo para ser manejado por el servidor </summary>
        /// <param name="dto">dato del dto para traducir en entidad</param>
        /// <returns>Recaudo</returns>
        public static Recaudo TraducirDto(DtoRecaudo dto)
        {
            Recaudo entidad = new Recaudo();
            entidad.Id = dto.Id;
            entidad.Nombre = dto.Nombre;

            return entidad;
        }


        /// <summary> Metodo que traduce una lista de entidades a una lista de dto's </summary>
        /// <param name="listaEntidad"></param>
        /// <returns></returns>
        public static List<DtoRecaudo> TraducirListaEntidad(IList<Recaudo> listaEntidad)
        {
            return listaEntidad.Select(TraducirEntidad).ToList();
        }


        /// <summary> Metodo que traduce una lista de dto's a una lista de entidades </summary>
        /// <param name="listaDto">lista a traducir</param>
        /// <returns>lista de entidades</returns>
        public static IList<Recaudo> TraducirListaDto(List<DtoRecaudo> listaDto)
        {
            return listaDto.Select(TraducirDto).ToList();
        }
    }
}
